package com.springboot.study.tests.java8;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @Author: guodong
 * @Date: 2021/7/30 16:28
 * @Version: 1.0
 * @Description:
 */
public class FlatMapTest {

    public static void main(String[] args) {
//        String[] words = new String[]{"Hello","World"};
//        List<String[]> a = Arrays.stream(words)
//                .map(word -> word.split(""))
//                .distinct()
//                .collect(Collectors.toList());
//        a.forEach(System.out::print);
//
//        String[] words = new String[]{"Hello","World"};
//        List<String> a = Arrays.stream(words)
//                .map(word -> word.split(""))
//                .flatMap(Arrays::stream)
//                .distinct()
//                .collect(Collectors.toList());
//        a.forEach(System.out::print);
//
//
        List<User> users = new ArrayList<>();
        User user = new User();
        user.setAddr("12345");
        users.add(user);

//        List<String> aa = users.stream().map(data -> {
//            return data.getAddr();
//        }).collect(Collectors.toList());
//        System.out.println(aa);

        List<String> aa = users.stream().flatMap(data -> Stream.of(data.getAddr().split(""))).collect(Collectors.toList());
        System.out.println(aa);

//        List<List<Integer>> outer = new ArrayList<>();
//        List<Integer> inner1 = new ArrayList<>();
//        inner1.add(1);
//        List<Integer> inner2 = new ArrayList<>();
//        inner2.add(2);
//        List<Integer> inner3 = new ArrayList<>();
//        inner3.add(3);
//        List<Integer> inner4 = new ArrayList<>();
//        inner4.add(4);
//        List<Integer> inner5 = new ArrayList<>();
//        inner5.add(5);
//        outer.add(inner1);
//        outer.add(inner2);
//        outer.add(inner3);
//        outer.add(inner4);
//        outer.add(inner5);
//        List<Integer> result = outer.stream().flatMap(inner -> inner.stream().map(i -> i + 1)).collect(Collectors.toList());
//        System.out.println(result);


    }

}
